#include <iostream>
#include <unordered_map>
#include <cstring>
using namespace std;
const int N=110;

int h[N],to[N],ne[N],idx;
int son[N];
void add(int x,int y)
{
	to[idx]=y;
	ne[idx]=h[x];
	h[x]=idx++;
}
int dfs(int u,int fa)
{
	for(int i=h[u];~i;i=ne[i])
	{
		int j=to[i];
		if(j==fa)
			continue;
		son[u]+=dfs(j,u)+1;
	}
	return 0;
}
void solve()
{
	int n;
	cin>>n;
	memset(h,-1,sizeof(h));
	memset(son,0,sizeof(son));
	for(int i=1;i<n;i++)
	{
		int x,y;
		cin>>x>>y;
		add(x,y);
		add(y,x);
	}
	dfs(1,-1);
	unordered_map<int,int> has;
	int ret=0;
	for(int i=1;i<=n;i++)
	{
		has[son[i]]++;
	}
	
	for(auto& e:has)
	{
		int cnt=e.second;
		if(cnt>1)
		{
			ret+=cnt*(cnt-1)/2;
		}
	}
	cout<<ret<<endl;
}
int main()
{
	int t;
	cin>>t;
	while(t--)
	{
		solve();
	}
	return 0;
}
